<?php
/**
 * 工厂模式的使用场景：
 * 1.代码中需要大量使用new关键字来实例化类对象时，使用工厂模式可以使后面的代码修改仅需要修改工厂类即可。
 * 2.当类可以有多种实现方式时，对外仅暴露工厂类，则修改实现方式仅需要在工厂类中修改即可
 */

namespace App\DesignPattern\Factory;

use FizeORM\Mysql\OrmMysqlPdo;

class OrmFactory {
	
	/**
	 * 当前使用的数据库驱动
	 * @var string
	 */
	private static $_db_type = 'mysql_pdo';

	/**
	 * ORM工厂，返回ORM实例
	 * @return OrmMysqlPdo
	 */
	public static function createOrm(){
		switch(strtolower(self::$_db_type)){
			case 'mysql_pdo':
				return new OrmMysqlPdo('127.0.0.1', 'root', '123456', 'gm_test');
			default :
				return null;
		}
	}
}
